<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>


    <!-- 学生就业数据 -->
    <script src="./test.js"></script>
    <script>
        // 所有的就业信息
        console.log(JSON.stringify(list))
    </script>
        <!-- 老师数据 -->
        <script src="./teacher.js"></script>
        <!-- 打印老师数据 -->
        <script>
           console.log(JSON.stringify(teachers))
        </script>
    <!-- 打印学生数据 -->
    <script>
        let students = list.map(item => {
            return {
                studentId: item.studentId,
                name: item.name,
                password: '123456'
            }
        })
        console.log('学生数据', JSON.stringify(students))
    </script>
    <!-- 就业率 -->
    <script>
        // // 示例数据（你的完整数据替换这里）
        // const list = [ /* 你的就业数据 */ ];

        // 统计班级就业情况
        const classStats = list.reduce((acc, student) => {
        const className = student.className;
        if (!acc[className]) {
            acc[className] = { total: 0, employed: 0 };
        }
        acc[className].total++;
        if (student.employmentStatus === "已就业") {
            acc[className].employed++;
        }
        return acc;
        }, {});

        // 提取班级名称数组（按字母排序）
        const classNames = Object.keys(classStats).sort();

        // 计算就业率数组
        const employmentRates = classNames.map(className => {
        const stats = classStats[className];
        const rate = (stats.employed / stats.total) * 100;
        return parseFloat(rate.toFixed(2)); // 保留两位小数
        });

        // 输出结果
        console.log("班级数组:", classNames);
        console.log("就业率数组:", employmentRates);
        console.log(JSON.stringify({
            class: classNames,
            rate: employmentRates
        }))
    </script>

    <!-- 行业分布 -->
     <script>
        // 定义行业分类映射表（按公司名称归类）
        const industryMap = {
        '华为': '通信/智能设备',
        '腾讯': '互联网/科技',
        '字节跳动': '互联网/内容',
        '阿里巴巴': '电商/金融科技',
        '京东': '电商/物流',
        '网易': '互联网/游戏',
        '小米': '消费电子/智能家居',
        '海尔': '家电制造',
        '中兴通讯': '通信设备',
        '戴尔': '电子信息/硬件',
        '惠普': '电子信息/硬件',
        '深信服': '网络安全',
        '联想': '计算机硬件',
        '新东方': '教育培训',
        '吉利': '汽车制造',
        '中国平安': '金融/保险',
        '顺丰': '物流运输',
        '商汤科技': '人工智能',
        '旷视科技': '人工智能',
        '依图科技': '人工智能',
        '依图科技': '人工智能',
        '网易': '互联网/游戏',
        '其他': '其他'
        };
        // 统计行业就业数据
        const industryStats = list.reduce((acc, student) => {
        if (student.employmentStatus !== '已就业') return acc;
        
        const company = student.company;
        // 使用映射表获取行业，无匹配则归类为"其他"
        const industry = industryMap[company] || '其他';
        
        acc[industry] = (acc[industry] || 0) + 1;
        return acc;
        }, {});

        // 转换为两个数组
        const industries = Object.keys(industryStats);
        const employmentCounts = industries.map(ind => industryStats[ind]);

        // 输出结果
        console.log("行业分布数组:", industries);
        console.log("就业人数数组:", employmentCounts);
        console.log(JSON.stringify({
            industries:industries ,
            employmentCounts:employmentCounts ,
        }))
     </script>
     <!-- 薪资范围 -->
      <script>
                // 定义薪资区间（可根据需求调整）
        const salaryRanges = [
        { min: 0, max: 10000, label: '低薪（<10k）' },
        { min: 10000, max: 15000, label: '中等（10k-15k）' },
        { min: 15000, max: Infinity, label: '高薪（>15k）' }
        ];

        // 统计各薪资区间的就业人数
        const salaryStats = list.reduce((acc, student) => {
        // 仅处理已就业学生
        if (student.employmentStatus !== '已就业') return acc;

        // 提取月薪数值（去除"元"字并转换为数字）
        const salaryStr = student.monthlySalary;
        const salary = parseFloat(salaryStr.replace('元', ''));

        // 判断属于哪个薪资区间
        const range = salaryRanges.find(r => salary >= r.min && salary < r.max);
        if (range) {
            acc[range.label] = (acc[range.label] || 0) + 1;
        }

        return acc;
        }, {});

        // 转换为两个数组（区间标签和对应人数）
        const salaryRangeLabels = Object.keys(salaryStats);
        const salaryCounts = salaryRangeLabels.map(label => salaryStats[label]);

        // 输出结果
        console.log("薪资区间数组:", salaryRangeLabels);
        console.log("各区间人数数组:", salaryCounts);

        console.log(JSON.stringify({
            salaryRangeLabels: salaryRangeLabels,
            salaryCounts: salaryCounts,
        }))
      </script>
      <!-- 统计班级  -->
      <script>
        let classlists = list.map(item => item.className)
        console.log(JSON.stringify({
            list: [...new Set(classlists)]
        }))
      </script>
</body>
</html>